﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Input;

namespace Citrix.XaAdminMobile.ViewModel
{
    /// <summary>
    /// This interface is used to manage the navigation between different pages in the
    /// application.
    /// </summary>
    internal interface IPage
    {
        /// <summary>
        /// Used to notify the page when is made the active page, or when it has become inactive.
        /// </summary>
        /// <param name="isActive">True if this page is now active, false if it has become
        /// inactive.</param>
        void NotifyActiveChanged(bool isActive);

        /// <summary>
        /// Notifies the active page that the physical back button has been pressed on the
        /// client device. In most cases you should always use this to trigger back navigation
        /// if the page is in a state to support it.
        /// </summary>
        void NotifyBackButtonPressed();

        /// <summary>
        /// Used to access the back command that will navigate you from the current page to the
        /// previous page in the navigation history.
        /// </summary>
        ViewModelManager VmManager { get; }
    }
}
